//! 程序入口模块 - 初始化系统并启动命令行界面

// 声明所有子模块
mod block;          // 区块数据结构
mod blockchain;     // 区块链核心逻辑
mod pow;            // 工作量证明算法
mod transaction;    // 交易处理
mod wallet;         // 钱包管理
mod merkle_tree;    // 默克尔树计算
mod smart_contract; // 智能合约（预留功能）
mod network;        // 网络通信（预留功能）
mod cli;            // 命令行交互
mod storage;        // 数据持久化

// 导入命令行接口模块
use cli::CLI;

/// 主函数执行流程：
/// 1. 显示欢迎信息
/// 2. 初始化命令行接口
/// 3. 进入交互式命令行循环
/// 4. 退出时自动保存区块链数据
fn main() {
    println!("欢迎使用区块链系统!");
    let mut cli = CLI::new();  // 创建CLI实例（自动加载存储数据）
    cli.run();                 // 启动交互循环
}